package com.zy.design.pattern.factory.method;

import com.zy.design.pattern.factory.base.IRuleConfigParser;

/**
 * @author zhaoyi
 * @date 2021/3/29 18:41
 *
 * 当对象的创建逻辑比较复杂，不只是简单的 new 一下就可以，
 * 而是要组合其他类对象，做各种初始化操作的时候，我们推荐使用工厂方法模式，
 * 将复杂的创建逻辑拆分到多个工厂类中，让每个工厂类都不至于过于复杂。
 * 而使用简单工厂模式，将所有的创建逻辑都放到一个工厂类中，会导致这个工厂类变得很复杂
 *
 * 在某些场景下，如果对象不可复用，那工厂类每次都要返回不同的对象。
 * 如果我们使用简单工厂模式来实现，就只能选择第一种包含 if 分支逻辑的实现方式。
 * 如果我们还想避免烦人的 if-else 分支逻辑，这个时候，我们就推荐使用工厂方法模式
 *
 */
public class SqlRuleConfigFactory implements IMethodRuleConfigFactory {

    @Override
    public IRuleConfigParser createParser() {
        return new SqlRuleConfigParser();
    }
}
